<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>对props简写</title>
  <style>

  </style>
</head>

<body>
<!-- 创建test -->
<div id="test1"></div>
<!-- 引入核心库 -->
<script src="../js/react.development.js"></script>
<!-- 引入react操作DOM支持库 -->
<script src="../js/react-dom.development.js"></script>
<!-- 引入babel 用于将jsx转为js -->
<script src="../js/babel.min.js"></script>
<!-- 引入prop-types 用于对组件标签属性进行限制 -->
<script src="../js/prop-types.js"></script>
<script type="text/babel">  // 此处引入一定要写babel
//  创建组件
class Person extends React.Component {
  //  构造器是否接收 Props,是否传递给super, 取决于:是否希望在构造器中通过this访问Props
  constructor(props) {
    super(props);
  }

// 对标签属性进行字段限制
// PropTypes.string   string 字段,为该字段的类型  为function 的 话 是 func
// PropTypes.isRequired  isRequired字段,为该字段是必须要的
 static propTypes = {
    name: PropTypes.string.isRequired,
    sex: PropTypes.string
  }
// 对标签设置默认值
  static defaultProps = {
    sex: "不男不女",
    age: 18
  }
  render() {
    const {name, sex, age} = this.props;
    return (
      <ul>
        <li>姓名：{name}</li>
        <li>性别：{sex}</li>
        <li>年龄：{age}</li>
      </ul>
    )
  }
}

const p = {
  name: "Tom",
  sex: "男",
  age: 19
}
ReactDOM.render(<Person {...p}/>, document.querySelector("#test1"))
</script>
</body>

</html>